草庐IT

Java Swingworker 和多线程

全部标签

java - ThreadPoolExecutor 具有自定义行为的固定线程池

我是这个主题的新手...我正在使用通过Executors.newFixedThreadPool(10)创建的ThreadPoolExecutor,在池满后我开始得到RejectedExecutionException。有没有办法“强制”执行者将新任务置于“等待”状态,而不是拒绝它并在池释放时启动它?谢谢关于这个的问题https://github.com/evilsocket/dsploit/issues/159涉及的代码行https://github.com/evilsocket/dsploit/blob/master/src/it/evilsocket/dsploit/net/Net

java - 为什么同步方法允许多个线程并发运行?

我在同一文件中有以下程序。我已经同步了run()方法。classMyThread2implementsRunnable{Threadt;MyThread2(Strings){t=newThread(this,s);t.start();}publicsynchronizedvoidrun(){for(inti=0;i输出是Threadname:MyThread1Threadname:MyThread4Threadname:MyThread4Threadname:MyThread1Threadname:MyThread1Threadname:MyThread4我的问题是为什么同步方法允许同

Java 多线程 - 线程安全计数器

我从一个非常简单的多线程示例开始。我正在尝试制作一个线程安全的计数器。我想创建两个线程来间歇性地增加计数器以达到1000。代码如下:publicclassThreadsExampleimplementsRunnable{staticintcounter=1;//aglobalcounterpublicThreadsExample(){}staticsynchronizedvoidincrementCounter(){System.out.println(Thread.currentThread().getName()+":"+counter);counter++;}@Overridep

java - String get/set 是线程安全的吗?

假设我有以下内容,publicclassFoo{privateStringbar;publicStringgetBar(){returnbar;}publicvoidsetBar(Stringbar){this.bar=bar;}}由于String类的不可变特性,这些方法是否自动线程安全,或者是否需要某种锁定机制? 最佳答案 不,这不是线程安全的。Foo是可变的,所以如果你想确保不同的线程看到相同的值bar–即一致性–或者:制作barvolatile,或制作方法synchronized,或使用AtomicReference.bar的

Javafx 使用计时器时不在 fx 应用程序线程上

我在用这个importjava.util.Random;importjava.util.Timer;importjava.util.TimerTask;importjavafx.application.Application;importjavafx.application.Platform;importjavafx.scene.Group;importjavafx.scene.Scene;importjavafx.scene.paint.Color;importjavafx.scene.shape.Circle;importjavafx.stage.Stage;publicclass

java - 线程 sleep 和线程连接

如果我让一个线程在循环中hibernate,netbeans会提醒我在循环中调用Thread.sleep会导致性能问题。但是,如果我要用join替换sleep,则不会给出此类警告。两个版本都可以编译并且工作正常。我的代码如下(检查“Thread.sleep()vst.join()”的最后几行)。publicclassTest{//Displayamessage,precededbythenameofthecurrentthreadstaticvoidthreadMessage(Stringmessage){StringthreadName=Thread.currentThread().

java.text.SimpleDateFormat 不是线程安全的

SynchronizationDateformatsarenotsynchronized.Itisrecommendedtocreateseparateformatinstancesforeachthread.Ifmultiplethreadsaccessaformatconcurrently,itmustbesynchronizedexternally在SimpleDateFormat类的JavaDoc中提到了上述行。这是否意味着我们不应该将SimpleDateFormat对象创建为Static。如果我们将它创建为静态的,那么无论我们在哪里使用这个对象,我们都需要将它保存在同步块(s

java - Java 8 中是否有一种方法可以让线程 hibernate 直到使用特定时钟的 Instant?

给定一个时钟、一个即时和当前线程,Java库中是否已经有一些(实用)方法可以使当前线程hibernate直到给定时钟到达即时?有点像publicstaticvoidsleepUntil(Instantinstant,Clockclock)throwsInterruptedException;?我在使用自定义减速时钟的测试设置中需要这个。我知道它很容易实现,但我更喜欢一个标准的解决方案(如果有的话)(但目前还没有找到)。 最佳答案 首先,Clock是一个非常简单类,几乎没有implementation和fewusesinthestan

java - 我是否需要同步访问仅由一个线程修改的列表?

这里我有一个类,它有两个可以访问列表的线程。一个线程定期用更新的副本替换列表,另一个线程将列表的内容绘制到屏幕上。publicclassThreadSafePainter{privateListdataList=newArrayList();/**startsathreadtoperiodicallyupdatethedataList*/publicThreadSafePainter(){Threadthread=newThread(()->{while(true){//replaceout-datedlistwiththeupdateddatathis.dataList=getUpd

CPU 负载中的 Java 多线程

我对运行多个Java线程的应用程序有点问题。该应用程序运行多个工作线程,这些线程持续查看输入队列,如果队列中有消息,它们就会将它们拉出并进行处理。在这些工作线程中,有另一个验证线程计划在固定时间执行检查以查看主机(运行应用程序的主机)是否仍处于运行应用程序的“良好状态”。此线程更新一个AtomicBoolean值,该值又由工作线程在开始查看主机是否正常之前进行验证。我的问题是,在CPU负载较高的情况下,负责验证的线程将花费更长的时间,因为它必须与所有其他线程竞争。如果AtomicBoolean在一定时间后没有得到更新,它会自动设置为false,给我带来严重的瓶颈。我最初的方法是增加验证